let jweixin = require("jweixin-module");
import { getEnv } from "./utils/env";

import { wxJsapiSignature } from "./servers/servers.js";

if (getEnv() !== "WEB_VIEW") {
  if (typeof window.entryUrl === "undefined" || window.entryUrl === "") {
    window.entryUrl = location.href.split("#")[0];
  }
}

export default {
  initJssdk: function (callback) {
    //获取当前url然后传递给后台获取授权和签名信息
    let url = /(Android)/i.test(window.navigator.userAgent)
      ? location.href.split("#")[0]
      : window.entryUrl;
    // let url = location.href.split("#")[0];
    //这里是请求后台，调用jssdk 的申请接口，只有它完成了后，才有权限调用 jssdk 中的方法
    console.log(url);
    wxJsapiSignature({
      url,
    }).then((res) => {
      jweixin.config({
        debug: false,
        appId: res.data.data.appId,
        timestamp: res.data.data.timestamp,
        nonceStr: res.data.data.nonceStr,
        signature: res.data.data.signature,
        jsApiList: [
          //这里是需要用到的接口名称
          "openLocation",
          "wx-open-launch-weapp",
          "updateAppMessageShareData",
          "updateTimelineShareData",
        ],
        openTagList: ["wx-open-launch-weapp"],
      });
      if (callback) {
        callback(res.data);
      }
    });
  },

  wxopenlaunchweapp: function () {
    this.initJssdk(function (res) {
      jweixin.ready(function () {});
    });
  },

  updateTimelineShareData: function ({
    title = "", // 分享标题
    link = "", // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
    imgUrl = "", // 分享图标
    callback = null,
  }) {
    this.initJssdk(function (res) {
      jweixin.ready(function () {
        jweixin.updateTimelineShareData({
          title, // 分享标题
          link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          imgUrl, // 分享图标
          success: function (r) {
            callback && callback(r);
          },
        });
      });
    });
  },

  updateAppMessageShareData: function ({
    title = "", // 分享标题
    desc = "", // 分享描述
    link = "", // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
    imgUrl = "", // 分享图标
    callback = null,
  }) {
    this.initJssdk(function (res) {
      jweixin.ready(function () {
        jweixin.updateAppMessageShareData({
          title, // 分享标题
          desc, // 分享描述
          link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          imgUrl, // 分享图标
          success: function (r) {
            callback && callback(r);
          },
        });
      });
    });
  },

  //打开地图导航
  openLocation: function ({
    latitude = 0,
    longitude = 0,
    name = "",
    address = "",
    scale = 18,
    infoUrl = "",
    callback = null,
  }) {
    this.initJssdk(function (res) {
      jweixin.ready(function () {
        jweixin.openLocation({
          latitude,
          longitude,
          name,
          address,
          scale,
          infoUrl,
          success: function (r) {
            callback && callback(r);
          },
        });
      });
    });
  },
};
